package com.xunqi.sell.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.xunqi.sell.enums.OrderStatusEnum;
import com.xunqi.sell.enums.PayStatusEnum;
import com.xunqi.sell.pojo.OrderDetail;
import com.xunqi.sell.util.EnumUtil;
import com.xunqi.sell.util.serializer.Date2LongSerializer;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
//@JsonInclude(JsonInclude.Include.NON_NULL)      //过滤掉返回的结果中list包含null值
public class OrderDTO implements Serializable {

    private static final long serialVersionUID = 8206115072120713142L;

    /** 订单id  */
    private String id;

    /** 买家名字  */
    private String buyerName;

    /** 买家手机号  */
    private String buyerPhone;

    /** 买家地址  */
    private String buyerAddress;

    /** 买家微信id  */
    private String buyerOpenid;

    /** 订单总金额  */
    private BigDecimal orderAmount;

    /** 订单状态，默认为新下单  */
    private Integer orderStatus;

    /** 支付状态，默认为0，未支付  */
    private Integer payStatus;

    /** 创建时间  */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date createTime;

    /** 修改时间  */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date updateTime;

    List<OrderDetail> orderDetailList;

    @JsonIgnore
    public OrderStatusEnum getOrderStatusEnum() {
        return EnumUtil.getByCode(orderStatus,OrderStatusEnum.class);
    }

    @JsonIgnore
    public PayStatusEnum getPayStatusEnum() {
        return EnumUtil.getByCode(payStatus,PayStatusEnum.class);
    }


}
